Spatially-aware projection pen interface

ABSTRACT

One embodiment of the present invention sets forth a technique for providing an end user with a digital pen embedded with a spatially-aware miniature projector for use in a design environment. Paper documents are augmented to allow a user to access additional information and computational tools through projected interfaces. Virtual ink may be managed in single and multi-user environments to enhance collaboration and data management. The spatially-aware projector pen provides end-users with dynamic visual feedback and improved interaction capabilities.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the priority benefit of U.S. provisional patentapplication Ser. No. 61/108,824, titled “PENLIGHT: COMBINING A MOBILEPROJECTOR AND A DIGITAL PEN FOR DYNAMIC VISUAL OVERLAY,” filed Oct. 27,2008.

BACKGROUND OF THE INVENTION

1. Field of the Invention

Embodiments of the present invention relate generally to a dynamicvisual display and, more specifically, to a spatially-aware projectionpen device.

2. Description of the Related Art

In recent years, digital pens that capture the ink strokes made onphysical paper have become widely available. These devices combine theversatility and simplicity of paper with digital enhancements such asthe capture and recording of annotations. Special paper that includespre-printed commands may be used to provide a command interface thatallows the pen-user to specify commands that control the digital pen.

A challenge with such systems is that while the pen provides theend-user with rich and dynamic input capabilities through the creationof ink and command strikes, current digital pen devices have verylimited output capabilities. Some digital pens have been enhanced withvarious forms of feedback including auditory, visual, and hapticfeedback. The visual feedback is limited to what can be displayed on thebarrel of the pen using colored LEDs or small OLED displays. While suchdisplays may be suitable for basic digital pen operations, e.g. queryingsimple text, these displays are not well-suited for more complexinteractions, e.g., searching for a word or object within a document.

As the foregoing illustrates, what is needed in the art is a techniquefor providing end-users with improved visual output in digital pensystems.

SUMMARY OF THE INVENTION

One embodiment of the present invention sets forth a method forconfiguring a spatially-aware projection pen to provide a userinterface. The method includes the steps of receiving a position of thespatially-aware projection pen in three-dimensional space from aposition tracking mechanism, receiving a signal indicating that a userinterface menu has been activated through an input mechanism of thespatially-aware projection pen, and outputting the user interface menuas a projected image that is displayed on a display surface by aprojector within the spatially-aware projection pen. The method alsoincludes the steps of determining that a menu item specified by the userinterface menu has been selected, deactivating the function fordisplaying the user interface menu, and configuring the spatially-awareprojection pen for an operation based on the selected menu item.

One advantage of the disclosed method is that it allows an end-user toaccess additional information and computational tools through projectedinterfaces when viewing a paper document. Virtual ink may be managed insingle and multi-user environments to enhance collaboration and datamanagement. The spatially-aware projector pen provides end-users withdynamic visual feedback and improved interaction capabilities, therebyimproving the overall end-user experience.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features of the presentinvention can be understood in detail, a more particular description ofthe invention, briefly summarized above, may be had by reference toembodiments, some of which are illustrated in the appended drawings. Itis to be noted, however, that the appended drawings illustrate onlytypical embodiments of this invention and are therefore not to beconsidered limiting of its scope, for the invention may admit to otherequally effective embodiments.

FIG. 1 illustrates a spatially-aware projection pen system configured toimplement one or more aspects of the present invention;

FIG. 2A illustrates a spatially-aware projection pen in an environment,according to one embodiment of the invention;

FIG. 2B illustrates a spatially-aware projection pen producing aprojected image, according to one embodiment of the invention;

FIG. 2C illustrates the different input layer regions in athree-dimensional space that includes the spatially-aware projectionpen, according to one embodiment of the invention;

FIG. 2D illustrates the different input layers, according to oneembodiment of the invention;

FIG. 3A illustrates a projected radial menu that is produced by thespatially-aware projection pen, according to one embodiment of theinvention;

FIG. 3B illustrates a flow diagram of method steps for displaying theprojected radial menu, according to one embodiment of the invention;

FIG. 3C illustrates a projected radial menu that is locked-onto thedisplay surface, according to one embodiment of the invention;

FIGS. 3D and 3E illustrate other flow diagrams of method steps fordisplaying the projected radial menu, according to one embodiment of theinvention;

FIG. 4A illustrates a physical layer including a floorplan and aspatially-aware projection pen, according to one embodiment of theinvention;

FIG. 4B illustrates a physical layer including a floorplan, aspatially-aware projection pen, and a projected image, according to oneembodiment of the invention;

FIG. 4C illustrates a flow diagram of method steps for displayingoverlay data, according to one embodiment of the invention;

FIG. 4D illustrates a physical layer including a floorplan, aspatially-aware projection pen, and another projected image, accordingto one embodiment of the invention;

FIG. 4E illustrates a flow diagram of method steps for displayingoverlay data for a computation, according to one embodiment of theinvention;

FIG. 5A illustrates a physical layer including a floorplan with asection line, a spatially-aware projection pen, and a projected image,according to one embodiment of the invention;

FIG. 5B illustrates a physical layer including a floorplan with awalk-through path, a spatially-aware projection pen, and a projectedimage, according to one embodiment of the invention; and

FIG. 5C a flow diagram of method steps for rendering and displayingoverlay data, according to one embodiment of the invention.

DETAILED DESCRIPTION

In the following description, numerous specific details are set forth toprovide a more thorough understanding of the present invention. However,it will be apparent to one of skill in the art that the presentinvention may be practiced without one or more of these specificdetails. In other instances, well-known features have not been describedin order to avoid obscuring the present invention.

FIG. 1 illustrates a spatially-aware projection pen system 100configured to implement one or more aspects of the present invention.The spatially-aware projection pen system 100 includes, withoutlimitation, a central processing unit (CPU) 130, a system memory 110, agraphics processing unit (GPU) 115, a device/memory bridge 105, aprojector 135, a camera 140, a force sensor 120, a network interface145, an input mechanism 125, and a position tracking mechanism 132. Thevarious components of the spatially-aware projection pen system 100 arepackaged within an enclosure to form a spatially-aware projection penthat is configured to be grasped by the human hand. The CPU 130communicates with the system memory 110 via the device/memory bridge105, which may be, e.g., a Northbridge device or subsystem. Systemmemory 110 is configured to store application programs, as well as dataused by or generated by the CPU 130. In particular, system memory 110 isconfigured to store design data 150, such as computer-aided designdrawings and information that is accessed by the application program112. System memory 110 is also configured to store image data 155 fordisplay by the projector 135. The image data 155 may be produced by theCPU 130 or a discrete GPU 115 based on design data 150 and/or datareceived via the camera 140, position tracking mechanism 132, forcesensor 120, and/or input mechanism 125.

System memory 110 is coupled to the device/memory bridge 105 via asystem memory bus 150. The device/memory bridge 105 may be coupled tothe GPU 115 that incorporates real-time image rendering means forrendering both three-dimensional (3D) and two-dimensional (2D) images.The CPU 130 or GPU 115 delivers pixel data to projector 135. In someembodiments, the integrated circuit implementing the CPU 130 mayincorporate additional functional blocks, such as the device/memorybridge 105 and GPU 115.

The device/memory bridge 105 is coupled to the network interface 144,the force sensor 146, the input mechanism 125, the position trackingmechanism 132, the projector 135, and the camera 140. The networkinterface 144 provides network connectivity to other computers in localor remote locations using any suitable technology, preferably a wirelesstechnology. In particular, portions of design data 150 and image data155 may be output to remote users via the network interface 144.Similarly, data received from a remote user via the network interface144 may be displayed and/or stored as design data 150 or image data 155.

Other components (not explicitly shown), including USB or other portconnections, CD drives, DVD drives, film recording devices, and thelike, may also be connected via network interface 145. Communicationpaths interconnecting the various components in FIG. 1 may beimplemented using any suitable protocols, such as PCI (PeripheralComponent Interconnect), PCI Express (PCI-E), AGP (Accelerated GraphicsPort), HyperTransport, Quick Path Interconnect, or any other bus orpoint-to-point communication protocol(s), and connections betweendifferent devices may use different protocols as is known in the art.

In one embodiment, system memory 110 is configured to store a graphicsmodeling or authoring application program 112 that is configured toaccess the design data 150 to provide image data 155 for display viaprojector 135 and use information acquired by the force sensor 120, theinput mechanism 125, the position tracking mechanism 132, and the camera140 to display a user-interface or image data. The force sensor 120indicates when a tip of the spatially-aware projection pen is in contactwith a physical surface and may be used to record pen strokes. An inkreservoir may be configured to deposit physical ink on the displaysurface when the tip of the spatially-aware projection pen is in contactwith the display surface. The input mechanism 125 may be implementedusing a button, wheel, or the like, that is configured to be activatedand/or deactivated by a user. The position tracking mechanism 132indicates the position of the spatially-aware projection pen inthree-dimensional space relative to a surface, e.g., paper. The positiontracking mechanism 132 may be configured to sense full, sixdegree-of-freedom information.

The camera 140 may be used capture pen strokes and/or performtwo-dimensional tracking by reading a small high-resolution pattern thatis physically printed on the display surface. The use of patterns fortwo-dimensional orientation and tracking is a technique that is familiarto those skilled in the art. Pen strokes that are captured using anycombination of force sensor 120, the input mechanism 125, the positiontracking mechanism 132, and the camera 140 may be stored as image data155 and displayed by projector 135 as virtual ink in real-time. Thecamera 140 may be used to capture pen strokes that deposit physical inkand store the pen strokes as image data 155.

FIG. 2A illustrates a spatially-aware projection pen 205 in a system200, according to one embodiment of the invention. One or more of theelements illustrated in spatially-aware projection pen system 100 areincluded in the spatially-aware projection pen 205. In order for the penprojector 225 to display the design data 150 and/or image data 155 as avisual overlay in the context of a paper document, the applicationprogram 112 needs to be aware of the spatial location relative to thedisplay surface 201. Capturing the 3D location of the pen tip on orabove the display surface 201 allows the spatially-aware projection pen205 to display virtual information which is relevant to the existingphysical content on the paper. The virtual information may be read fromdesign data 150 or information previously captured by spatially-awareprojection pen 205 from pen strokes that is stored as image data 155.The spatially-aware projection pen 205 increases the user's ability towork with functionality that requires visual feedback, such as viewingthe results of computations, and overlaying contextual information usingpen projector 225.

In one embodiment, the pen projector 225 is positioned 1 cm above and 5cm away from the tip of spatially-aware projection pen 205. Thepen-projector angle 206 is 7 degrees, and the projector field of viewangle 208 is 30 degrees with an aspect ratio of 4/3. This configurationcreates a 2.5 cm×2.5 cm projected image when the tip of thespatially-aware projection pen 205 is 5 cm above the display surface201. In other embodiments, the pen projector 225 position, the projectorfield of view angle 208, and/or the pen-projector angle 206 may vary.

A camera lens 203 is positioned to enable 2D tracking using patternsprinted on the display surface 201. The camera lens 203 may also be usedto enable 3D optical tracking using traceable patterns to retrievecamera calibration parameters to determine 3D location and orientation.The patterns may also represent a hierarchical encoding pattern whichallows the camera to cover a wide range of distances from the displaysurface 201. Additional patterns may be printed on the display surface201 in infrared ink to be less distracting to the user.

FIG. 2B illustrates the spatially-aware projection pen 205 producing aprojected image 220 on a display surface 215, according to oneembodiment of the invention. The location of the pen projector 225should be carefully considered, since the location affects the operationof the overall system in several ways. The location of the pen projector225 within the spatially-aware projection pen 205 determines the size ofthe projected image 220 and the center of mass of the spatially-awareprojection pen 205. Furthermore, the pen-projector angle 206 determineswhere the tip of the spatially-aware projection pen 205 is in referenceto the projected image 220. Hence, any technique that requires the userto rely on visual persistence to interact with virtual imagery, such astracing, will be affected by the location of the pen projector 225. Thepen-projector angle 206 may also determine if any “finger shadows” existon the projected image 220.

In some embodiments, a laser based projection is used to keep theprojected image 220 in constant focus at different distances from thespatially-aware projection pen 205. The dynamic brightness may also beaccommodated, using a projector that modulates the brightness based onthe distance of the spatially aware pen 205 from the display surface 215and rendering software that takes the dynamic dots per inch (DPI) intoaccount. In other embodiments, a separate projector configuration, suchas a display surface mounted projector or even a removable “pen capprojector” are used.

Conventional digital pens without an integrated projector are not ableto display query results or other information on the display surface 215at different sizes and resolution. The size of projected image 220 mayvary dynamically, based on the location of spatially-aware projectionpen 205 relative to the display surface 215. Spatially-aware projectionpen 205 also provides a direct link between input, e.g., pen strokes,and output, e.g., projected image 220. This coupling between the inputand output enables a variety of different interaction techniques sincethe input and output features of the spatially-aware projection pen 205may be used simultaneously. Additionally, multiple users may share thesame display surface 215 and collaborate by each providing input via aspatially-aware projection pen 205. Remote users may also provide inputand see the same projected image 220 on a remote display surface 215.

FIG. 2C illustrates the different input layer regions in athree-dimensional space 250 that includes the spatially-aware projectionpen 205, according to one embodiment of the invention. Thespatially-aware projection pen 205 enables multiple input and displaylayers that enable new interaction techniques and provide richer visualfeedback compared with interacting with paper. Users may navigatebetween different virtual ink and content layers, perform operations onphysical and virtual content, extract and display differentrepresentations of the printed content on the display surface 235, andaccess functionality through a menu system that is displayed by thespatially-aware projection pen 205 in the projected image 242.

The three-dimensional space 250 is partitioned into multiple inputlayers and display layers. A surface input layer 238 is locatedcoincident with the display surface 235, a hover input layer 245 islocated just above the display surface 235, and a spatial input layer245 exists in the three-dimensional space 250 above the hover inputlayer 240. The spatial awareness of the spacially-aware pen 205 enablesabove-the surface interaction within the spatial input layer 245. Themain use of the spatial input layer 245 is for command input and toposition or rescale the projected image 242. The primary use of thehover input layer 240 is for command input and manipulation of a virtualcursor within the projected image 242.

The surface input layer 238 is where the tip of the spatially-awareprojection pen 205 is in physical contact with the display surface 235.The visibility characteristic of the surface input layer 238 indicateswhether or not input within the layer will produce a visible trail ofink. With a standard physical pen, this input is visible. However, itmay be desirable to provide input on the display surface 235 withoutleaving a trail of ink. For example, when providing command input, anink trail which was used for selection is of no use after the menu itemis selected. Also, it may be useful to support virtual ink annotationscreated on top of the original of a physical image, to avoid undesirableclutter, and to preserve the original. Virtual ink can be created bymechanically switching, either manually or electronically, to a pen tipwithout ink or by placing a transparency on top of the paper. Since thespatially-aware projection pen 205 captures the content that has beencreated and tracks the position within three-dimensional space 250,input created in surface input layer 238 can be either high level globalsystem commands, or contextual, acting on the data which is in proximityto the input.

FIG. 2D illustrates the different display and virtual layers, accordingto one embodiment of the invention. The display layers include thephysical display (surface) layer 260 and the virtual display layer(s)265. The virtual display layers 268 may include multiple separatevirtual layers that are overlaid. Each virtual layer may include one ormore of user interface elements 270, virtual ink 275, or data content280. The physical display layer 260 is the layer which physically existson the display surface 235 and may include a variety of differentelements. Examples of elements include printed content, such as adiagram or two-dimensional building layout, ink created by the user, anduser interface elements, such as menus and icons, preprinted on thephysical display layer 260.

Above the physical display layer 260 are one or more virtual displaylayers 265 that may be combined to produce the projected image 262. Avariety of display elements may be projected onto the virtual displaylayers 262. Two traditional forms of display elements include the userinterface elements 270 and the user generated virtual ink 275. A thirdform of display element is auxiliary data content 280 stored as part ofdesign data 150. Auxiliary data content 280 is not explicitly created bythe user with the spatially-aware projection pen 205. Often, only asubset of associated design data 150 and/or image data 155 istransferred to the physical display layer 260 during the printingprocess. Data content 280 may be useful for displaying aspects of thedesign data 150 that are not included in the physical display layer 260.For example, when multivalent documents that consist of multipleabstract layers of distinct, but closely coupled content, are used onlysome of the abstract layers may be included in physical layer 260.Multivalent documents are especially prevalent in the application domainof architecture and three-dimensional modeling, e.g., different floorplans, section views, and additional metadata to describe materials andprocesses.

The most basic functionality of digital pens and the spatially-awareprojection pen 205 is creating virtual and/or physical ink. Thespatially-aware projection pen 205 enables users to create and managevirtual ink that users can then make use of in different functions, suchas tracing and drawing virtual guides. In some embodiments, the inputmechanism 125 is used to change from a pen tip with physical ink to apen tip using virtual ink that is displayed within the projected image262. When virtual ink is enabled, all pen strokes are added to thevirtual ink display layer 265, in the location of the display surface inwhich they are created. The virtual ink 275 may be stored in image data155 or design data 150. By creating the strokes in the surface inputlayer 238, the annotations are added to only the virtual display layer265. This allows a user to annotate a blueprint without altering theoriginal document.

Users can trace over both physical and virtual content within projectedimage 262 to produce trace data that is captured and stored in imagedata 155. The trace data may be applied to different special locationswithin three-dimensional space 250. Users may also load existing virtualtemplates to trace out with physical ink input. The resolution and sizeof the virtual content being traced changes in resolution and sizedepending on the location of the spatially-aware projection pen 205relative to the display surface 235.

Instead of tracing, virtual guides may be created to aid in generating aphysical sketch. Such grids and guides are widely used in image editingapplications, but unavailable when working on physical paper. To createa geometric guide, the user can select the line circle, rectangle, orgrid menu item. Instead of entering points that define the geometry, theuser may draw a similar shape and the spatially-aware projection pen 205will approximate the selected shape. For example, the user can draw acircle using the spatially-aware projection pen 205 in thethree-dimensional space 250, and the spatially-aware projection pen 205determines the center point and the radius. In grid mode, users may drawa rectangle that serves as the unit rectangle shape of the grid. Oncethe spatially-aware projection pen 205 is lifted, the entire virtuallayer is covered with a self replicating grid layout.

FIG. 3A illustrates a projected radial menu 300 that is produced by thespatially-aware projection pen 205, according to one embodiment of theinvention. The projected radial menu 300 may be implemented usinghierarchy to access various functions of the system 200. The radialdistribution of menu items in regions 301, 302, 303, and 304 that areseparated by region boundaries, e.g., region boundary 305, simplifiesuse of the projected radial menu 300 since users only need to rememberwhat direction to move towards. Users can access the projected radialmenu 300 by activating the input mechanism 125 on spatially-awareprojection pen 205 to cause the top level of the projected radial menu300 to be displayed in a virtual display player 265. In contrast,conventional digital pen menu systems rely on menus that are preprintedon the display surface.

Projected radial menu 300 may be configured to display different levelsof hierarchy. The semantic scale of the projected radial menu 300 mayvary depending on the position of the spatially-aware projection pen 205in the three-dimensional space 205. For example, when the user lifts thespatially-aware projection pen 205 above the hover input layer 240, twolevels of menu items may be shown by subdividing each of the regions301, 302, 303, and 304, thereby allowing the user to see more items atthe same time. Although the projected image 242 appears larger as thespatially-aware projection pen 205 moves further from the displaysurface 235, the motor space is smaller, making selection of one ofregions 301, 302, 303, or 304 more difficult.

Different metaphors may be used for displaying the virtual displaylayers 365 and the projected radial menu 300. A first metaphor is“content locked on-surface” that displays the content on the displaysurface 235 and the projected image 242 appears as a peephole throughwhich the content is visible. The content is stationary relative to thespatially-aware projection pen 205 since it is in a position that islocked to the display surface 235. The virtual content is overlaid inthe context of the display surface 235. For example, ink annotationsmade by a remote collaborator and captured as virtual ink are positionedon top of the content to which they are referring, or virtual contentthat augments the physical content may be registered with the printedcontent and be overlaid on the display surface 235.

A second metaphor is “content locked in-hand” that generates projectedimage 242 without any calibration or transformation. The pen projector225 does not need to be spatially aware when this display mode is used.This mode is also useful when the user wants to change the position orscale of the content as the spatially-aware projection pen 205 moves.

FIG. 3B illustrates a flow diagram of method steps for displaying theprojected radial menu 300, according to one embodiment of the invention.Although the method steps are described in conjunction with FIGS. 1 and2A, persons skilled in the art will understand that any systemconfigured to perform the method steps, in any order, falls within thescope of the present invention.

The method begins at step 310 where the user activates display of theprojected radial menu 300 using the input mechanism 125 on thespatially-aware projection pen 205, i.e., by pressing and releasing abutton. At step 312, the projected radial menu 300 is output via the penprojector 225 to produce projected image 242. At step 315, the projectedradial menu 300 is locked in position onto the display surface 235 and avirtual cursor is positioned in the center of the projected radial menu300. The virtual cursor is locked to the spatially-aware projection pen205 and moves with the spatially-aware projection pen 205. At step 320,the spatially-aware projection pen 205 determines whether the virtualcursor crosses a region boundary that delineates one of the regions 301,302, 303, and 304 while the spatially-aware projection pen 205 ispositioned in the hover input layer 240.

The method remains at step 320 when a region boundary is not crossed.Otherwise, at step 322, the item, specified by the region 301, 302, 303,or 304 that is entered when the region boundary is crossed, is selected.At step 324, the spatially-aware projection pen 205 determines whetheranother level of hierarchy of the projected radial menu 300 should bedisplayed. If so, then the method returns to step 312. Another level ofhierarchy should be displayed when the selected item is hierarchical,i.e., includes more than one option. Otherwise, at step 325, thespatially-aware projection pen 205 ends display of the projected radialmenu 300. The projected image 242 remains locked to the position on thedisplay surface 235 while the projected radial menu 300 is activated andthe spatially-aware projection pen 205 is configured in the lockedon-surface mode. This allows the user to move the spatially-awareprojection pen 205 relative to the regions in order to cross a regionboundary and select a particular region. Note that the locked-on surfacemode may be selected by navigating the projected radial menu 300.

FIG. 3C illustrates the projected radial menu 300 that is locked-ontothe display surface 228, according to one embodiment of the invention.Although the method steps are described in conjunction with FIGS. 1 and2A, persons skilled in the art will understand that any systemconfigured to perform the method steps, in any order, falls within thescope of the present invention. The projected image 327 output by thespatially-aware projection pen 205 provides a peephole into theprojected radial menu 300. As the virtual cursor path 326, which iscontrolled by movement of the spatially-aware projection pen 205,crosses the region boundary that delineates region 303, the menu itemspecified by region 303 is selected. The spatially-aware projection pen205 is then configured for an operation based on the selected menu item.

FIG. 3D illustrates another flow diagram of method steps for displayingthe projected radial menu 300, according to one embodiment of theinvention. Although the method steps are described in conjunction withFIGS. 1 and 2A, persons skilled in the art will understand that anysystem configured to perform the method steps, in any order, fallswithin the scope of the present invention.

The method begins at step 330, where the user activates display of theprojected radial menu 300 using the input mechanism 125. At step 332,the projected radial menu 300 is output via the pen projector 225 toproduce projected image 242. At step 335, the projected radial menu 300is locked to the position of the spatially-aware projection pen 205,i.e., the projected radial menu 300 moves with the spatially-awareprojection pen 205. The virtual cursor is also locked to the position ofthe spatially-aware projection pen 205 and appears at the center of theprojected radial menu 300. Menu items cannot be selected by crossing aregion boundary because the virtual cursor remains in the center of theprojected radial menu 300 when the user moves the spatially-awareprojection pen 205.

At step 336, the spatially-aware projection pen 205 determines whetherthe input mechanism 125 is activated. If so, then at step 338 theprojected image 242 is locked to the display surface 228. Otherwise, themethod remains at step 336. At step 340, the spatially-aware projectionpen 205 determines whether or not a region boundary that delineates oneof the regions 301, 302, 303, and 304 is crossed while thespatially-aware projection pen 205 is positioned in the hover inputlayer 240 and the input mechanism 125 is activated. In other words, tocomplete steps 336, 338, and 340 the user depresses a button on thespatially-aware projection pen 205 and gestures in the direction of theregion that specifies the menu item to be selected. The spatially-awareprojection pen 205 remains in step 340 when a region boundary is notcrossed. Otherwise, at step 342, the item, specified by the region 301,302, 303, or 304 that is entered when the region boundary is crossed, isselected. The user may release the button when the menu item isselected.

At step 344, the spatially-aware projection pen 205 determines whetheranother level of hierarchy of the projected radial menu 300 should bedisplayed. If so, then the method returns to step 332. Otherwise, atstep 345, the spatially-aware projection pen 205 stops displaying theprojected radial menu 300. The projected image 242 remains locked to theposition of the display surface 228. The spatially-aware projection pen205 is then configured for an operation based on the selected menu item.Note that the locked in-hand mode or the locked to-surface mode may beactivated by navigating the projected radial menu 300.

FIG. 3E illustrates another flow diagram of method steps for displayingthe projected radial menu 300 using another variation of the lockedin-hand mode, according to one embodiment of the invention. Although themethod steps are described in conjunction with FIGS. 1 and 2A, personsskilled in the art will understand that any system configured to performthe method steps, in any order, falls within the scope of the presentinvention.

The method begins at step 360 where the user activates display of theprojected radial menu 300 using the input mechanism 125. At step 362,the projected radial menu 300 is output via the pen projector 225 toproduce projected image 242. At step 365, the projected radial menu 300is locked to the position of the spatially-aware projection pen 205,i.e., the projected radial menu 300 moves with the spatially-awareprojection pen 205. The virtual cursor is also locked to the position ofthe spatially-aware projection pen 205 and appears at the center of theprojected radial menu 300. Menu items cannot be selected by crossing aregion boundary because the virtual cursor remains in the center of theprojected radial menu 300 when the user moves the spatially-awareprojection pen 205.

At step 370, the spatially-aware projection pen 205 determines whether aregion boundary delineating one of the regions 301, 302, 303, and 304 iscrossed while the spatially-aware projection pen 205 is positioned inthe surface input layer 238. When this technique of menu item selectionis used, ink trails (virtual or physical) may be made on the displaysurface 235. The method remains in step 370 when a region boundary isnot crossed. Otherwise, at step 372, the menu item, specified by theregion 301, 302, 303, or 304 that is entered when the region boundary iscrossed, is selected.

At step 374, the spatially-aware projection pen 205 determines if thedisplaying of the projected radial menu 300 should be deactivated. Ifso, then the method proceeds directly to step 380. In some embodiments,the user may deactivate the displaying of the projected radial menu 300by depressing and releasing the input mechanism 125 or by lifting thespatially-aware projection pen 205 above the surface input layer 238.

If, at step 374, the spatially-aware projection pen 205 determines thatthe displaying of the projected radial menu 300 should not bedeactivated, then, at step 376, the spatially-aware projection pen 205determines whether another level of hierarchy of the projected radialmenu 300 should be displayed. If another level of hierarchy of theprojected radial menu 300 should be displayed, then the method returnsto step 362. Otherwise, at step 380, the spatially-aware projection pen205 stops displaying the projected radial menu 300. The spatially-awareprojection pen 205 is then configured for an operation based on theselected menu item. The projected image 242 remains locked to theposition of the spatially-aware projection pen 205 while thespatially-aware projection pen 205 is configured in the locked in-handmode. Note that the locked in-hand mode or the locked on-surface modemay be activated by navigating the projected radial menu 300.

When the locked in-hand mode is used, it may be desirable to use animage stabilization technique since the projected image 242 moves withany movement of the spatially-aware projection pen 205. One techniquethat may be used involves updating the projected image 242 at fixedintervals in time or at discrete intervals, such as when thespacially-aware pen 205 is in a relatively stable position. Once thespatially-aware projection pen 205 begins moving faster than a thresholdvelocity value, the projected image 242 may fade out, i.e., becomeincreasingly transparent. This introduces a unique interactioncharacteristic, specifically that the user may be able to see thevirtual imagery when holding the spatially-aware projection pen 205 in astable position, but the user relies on his or her persistence of visionto interact with the projected image 242 when moving the spatially-awareprojection pen 205.

Professions such as architecture rely on a paper intensive workflow todistribute designs among different parties and to represent the actualcontract commitment. While paper drawings are ubiquitous in each stageof architecture practice, the usefulness of paper drawings is somewhatlimited. In particular, it is difficult to access additional informationrelated to the paper drawings. During a discussion between architectsand their clients in a meeting room, oftentimes the clients want to seea three-dimensional rendering of the design. This normally requires acomputer nearby and real-time applications to simulate the walk-through.Another limitation of conventional paper drawings is that levels ofdetail are spread across many different pages. Manually tracing onelayer of information from one page of a paper drawing onto a sheet(typically onionskin paper) and overlaying that sheet on top of anotherpage of a paper drawing is a common practice that architects use tocompensate for this limitation. It is also difficult to coordinatedifferent versions of a design document between different serviceproviders and clients as well as between remote collaborators.

The spatially-aware projection pen is particularly useful for workflowsthat are paper-based and use complex designs with multiple layers orcontexts. In particular, with the spatially-aware projection pen, userscan interact with different layers, access design data, and capturedesign changes and other input. Importantly, users can query and augmentphysical architectural sketches and collaborate with remote users. Thus,the spatially-aware projection pen addresses many of the problems setforth above that arise from complex, paper-based workflows that includemultiple layers or contexts.

FIG. 4A illustrates a spatially-aware projection pen 400 and a physicallayer including a floorplan that is printed on the display surface 408,according to one embodiment of the invention. Various layers of thedesign data 150 and/or image data 155 can be overlaid onto the displaysurface 408 within the projected image 407 that is produced by thespatially-aware projection pen 400.

FIG. 4B illustrates a spatially-aware projection pen 410, a physicallayer including a floorplan that is printed on the display surface 408,and a projected image 417, according to one embodiment of the invention.The projected image 417 includes electrical components 415. Note thatthe electrical components 415 are only visible within the projectedimage 417 (the peephole). In other embodiments, the projected image 417may include additional components or additional layers, e.g., heating,ventilation, mechanical, lighting, and the like.

The overlaid content or the original physical content may be copied toanother location on display surface 418 to be overlaid. The user entersa copying mode using the projected radial menu 300 and indicates an areausing the spatially-aware projection pen 410 to specify a contextualparameter of the projected image 417 or the image printed on the displaysurface 418. The user then enters a pasting mode using the projectedradial menu 300, and the copied content is displayed using the lockedin-hand metaphor and copied when the user engages the input mechanism125.

FIG. 4C illustrates a flow diagram of method steps for displayingoverlay data, according to one embodiment of the invention. Although themethod steps are described in conjunction with FIGS. 1, 2A, 4A, and 4B,persons skilled in the art will understand that any system configured toperform the method steps, in any order, falls within the scope of thepresent invention.

The method begins with step 420 where the user selects the overlay datato be displayed in the projected image. The data may be selected usingthe projected radial menu 300. At step 422, the overlay data isdisplayed using the projector within the spatially-aware projection pen.At step 424, the user activates the copy mode. At step 426, the userselects a region or an element within the display surface or theprojected image. The region or element may be captured using the camerawithin the spatially-aware projection pen. At step 428 an image of thecopied region or element is stored in memory within image data 155. Atstep 430 the user selects a paste position within the display surfaceusing the spatially-aware projection pen. At step 432 the overlay imageis updated to include the copied region or element. At step 434 theupdated overlay image is displayed using the projector within thespatially-aware projection pen.

FIG. 4D illustrates a spatially-aware projection pen 440, a physicallayer including a floorplan that is printed on the display surface 448,and another projected image 447, according to one embodiment of theinvention. The virtual display layer feature of the spatially-awareprojection pen enables computations to be performed and the resultsdisplayed in the contexts of the user's workspace. The user may performa measurement query by selecting a particular element to be measuredusing the spatially-aware projection pen 440 and engaging a dimensiontool to overlay the measurement information. Using the projected radialmenu 300, the user can choose to measure a distance, path length, area,or volume. Alternatively, the user may create a line or bounding boxusing the spatially-aware projection pen 440, and the measurements ofthe line or bounding box is displayed in projected image 447. Themeasurement computation is displayed by the projector of thespatially-aware projection pen 440 within the projected image 447.

A search command may allow users to search for an element that exists onthe display surface 448 (physical display layer). The user can performthe query in two ways. First, they can choose from a list of queryelements, e.g., sprinklers, outlets, and the like, in the search menuprovided by the projected radial menu 300 using a virtual cursor.Alternately, the user can directly select an instance of an element ondisplay surface 448 or within projected image 447 using thespatially-aware projection pen 440. For example, the user may perform aquery to search for electrical outlets. In response, the outlets,including outlet 445, that are within projected image 447 are displayed.Halos 442, 443, and 441 correspond to outlets that are nearby, but notwithin, the projected image 447. Halos 442, 443, and 441 may guide theuser to additional instances of the element that was searched, allowingthe user to find elements of interest faster. The user can raise thespatially-aware projection pen 440 to see a larger portion of thedisplay, i.e., to increase the size of projected image 447, to navigatetoward or to display the elements corresponding to one or more of thehalos 442, 443, and 441.

FIG. 4E illustrates a flow diagram of method steps for displayingoverlay data for a computation, according to one embodiment of theinvention. Although the method steps are described in conjunction withFIGS. 1, 2A, 4A, and 4B, persons skilled in the art will understand thatany system configured to perform the method steps, in any order, fallswithin the scope of the present invention.

The method begins at step 470 where the user selects a region or elementon display surface 448 or within projected image 447 using thespatially-aware projection pen 440. At step 472, CPU 130 or GPU 115obtains the data corresponding to the selected region or element. Atstep 474, the CPU 130 or GPU 115 performs one or more computationsspecified by the user. At step 476, the overlay image is updated toinclude the computation result. At step 478, the updated overlay imageis displayed using the projector within the spatially-aware projectionpen 440.

The printed content that is visible on the display surface is only oneabstract view of a larger electronic file that is stored in the designdata 150 within system memory 110. For example, when a two-dimensionalfloor plan is printed on the display surface, the spatially-awareprojection pen 440 may directly access a highly detailedthree-dimensional model that is stored as the design data 150 or image155 or generated by the CPU 130 or GPU 115 using the design data 150. Aview of the three-dimensional model may be displayed within theprojected image that is output by the projector within thespatially-aware projection pen 440. Note that the projected image may bedisplayed on a display surface, such as a printed floor plan or on ablank surface.

FIG. 5A illustrates a physical layer including a two-dimensionalfloorplan that is printed on the display surface 508, a spatially-awareprojection pen 500, and a projected image 507, according to oneembodiment of the invention. When a two-dimensional section view mode isengaged, the user may draw the section line 510 on display surface 508using the spatially-aware projection pen 500 to define a cutting surfacethat is used to extract a two-dimensional section of the currentthree-dimensional model. A two-dimensional section view is generatedbased on the position and orientation of the section line 510 anddisplayed in the projected image 507. The two-dimensional section islocked in-hand and may be locked to a position on the display surface508 using the input mechanism 125 on the spatially-aware projection pen500.

Users can use the spatial input layer feature of the spatially-awareprojection pen 500 to extract a three-dimensional snapshot of thecurrent three-dimensional mode. When choosing this operation, the usermay use the location and direction of the spatially-aware projection pen500 in reference to the display surface 508 to specify the cameralocation and the viewing vector into the three-dimensional model.Varying the height of the spatially-aware projection pen 500 relative tothe display surface 508 determines the view that is captured, e.g., theinterior view (when the spatially-aware projection pen 500 is near tothe display surface 508) or the exterior view (when the spatially-awareprojection pen 500 is high above the display surface 508). As with thesection view, the three-dimensional snapshot may be displayed in theprojected image 507 and locked onto the display surface 508 or a blanksurface.

In addition to computing and displaying two-dimensional andthree-dimensional section views, the spatially-aware projection pen 500may be used to create a two-dimensional walk-through of athree-dimensional mode. FIG. 5B illustrates a physical layer including afloorplan that is printed on the display surface 568, a spatially-awareprojection pen 560, and a projected image 567, according to oneembodiment of the invention. The user may draw a path, such aswalk-through path 565, on the display surface 568 with thespatially-aware projection pen 560. Frames of the two-dimensionalwalk-through represented as pixel data, as viewed from a viewpointmoving along the walk-through path 565, are generated by the CPU 160 orthe GPU 115 and stored in the image data 155 for playback as awalk-through animation. When a pen-up event is detected, the projectedimage 567 is locked in-hand. When the user activates the input mechanism125, the spatially-aware projection pen 560 displays the walk-throughanimation in the projected image 567 and locks the projected image 567to the display surface 568. As the frames are being displayed in theprojected image 567, the walk-through position 562 indicates theposition along the walk-through path 565 that corresponds to the currentframe that is displayed.

FIG. 5C a flow diagram of method steps for rendering and displayingoverlay data, according to one embodiment of the invention. Although themethod steps are described in conjunction with FIGS. 1, 2A, 5A, and 5B,persons skilled in the art will understand that any system configured toperform the method steps, in any order, falls within the scope of thepresent invention.

The method begins at step 570 when the user defines a path or sectioncut on display surface 568 or within projected image 567 using thespatially-aware projection pen 560. At step 572, CPU 130 or GPU 115obtains the data corresponding to the defined path or section cut. Atstep 574, the CPU 130 or GPU 115 renders one or more frames of pixeldata to produce two-dimensional view(s) of the three-dimensional model.At step 576, the rendered frames are stored in image data 155. At step578, the updated overlay image, including the rendered frames, isdisplayed using the projector within the spatially-aware projection pen560.

In sum, the spatially-aware projection pen enables the use of virtualink in addition to conventional physical ink. The virtual ink may beused to capture commands, annotate an existing design, and communicatewith a remote user. The virtual ink may be displayed as a projectedimage on a display surface by the spatially-aware projection pen.Auxiliary design information and rendered images may also be displayedin the projected image. The spatially-aware feature of the projectionpen allows for gestures to be interpreted differently based on theposition of the spatially-aware projection pen in three-dimensionalspace.

Unlike a conventional digital pen, the interaction space available tothe user of the spatially-aware projection pen is not merely located tothe surface input layer, but extends to the space above the displaysurface. The integrated projector allows a user to visibly correlateinformation that is stored inside the pen or on any connected resourcewith the information illustrated on the display surface. As a result,paper is no longer just a static source of data, but it is also used asthe display surface and a dynamic workspace. Virtual ink benefits theuser by providing visual feedback without permanently modifying thephysical display surface. The spatially-aware projection pen enables auser to interact with the design more efficiently and intuitively.

While the foregoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof. For example, aspects of thepresent invention may be implemented in hardware or software or in acombination of hardware and software. One embodiment of the inventionmay be implemented as a program product for use with a computer system.The program(s) of the program product define functions of theembodiments (including the methods described herein) and can becontained on a variety of computer-readable storage media. Illustrativecomputer-readable storage media include, but are not limited to: (i)non-writable storage media (e.g., read-only memory devices within acomputer such as CD-ROM disks readable by a CD-ROM drive, flash memory,ROM chips or any type of solid-state non-volatile semiconductor memory)on which information is permanently stored; and (ii) writable storagemedia (e.g., floppy disks within a diskette drive or hard-disk drive orany type of solid-state random-access semiconductor memory) on whichalterable information is stored. Such computer-readable storage media,when carrying computer-readable instructions that direct the functionsof the present invention, are embodiments of the present invention.

In view of the foregoing, the scope of the present invention isdetermined by the claims that follow.

We claim:
 1. A computer-implemented method for configuring aspatially-aware projection pen to provide a user interface, the methodcomprising: receiving a position of the spatially-aware projection penin three-dimensional space from a position tracking mechanism, whereinthe three-dimensional space is partitioned into a surface input layerthat includes a display surface, a hover input layer that is directlyabove the display surface, and a spatial input layer that is directlyabove the hover input layer; receiving a signal indicating that a userinterface menu has been activated through an input mechanism of thespatially-aware projection pen; outputting the user interface menu as aprojected image that is displayed on the display surface by a projectorwithin the spatially-aware projection pen, wherein the user interfacemenu comprises a radial menu that includes a plurality of regionsseparated by boundaries, wherein each of the regions represents adifferent menu item included in the radial menu; locking the userinterface menu to a specific position on the display surface;determining that a menu item specified by the user interface menu hasbeen selected, wherein determining comprises the spatially-awareprojection pen determining that a boundary delineating a first region ofthe user interface menu has been crossed by a virtual cursor to select afirst menu item associated with the first region, wherein the virtualcursor has a position that is controlled by movements of thespatially-aware projection pen; deactivating the function for displayingthe user interface menu when the spatially-aware projection pen islifted above the surface input layer; and configuring thespatially-aware projection pen for an operation based on the selectedmenu item.
 2. The method of claim 1, further comprising, prior to thestep of determining, the step of locking the user interface menu to theposition of the spatially-aware projection pen in the three-dimensionalspace.
 3. The method of claim 2, wherein the step of determiningcomprises locking a virtual cursor to the position of thespatially-aware projection pen in the three-dimensional space andactivating the input mechanism to lock the user interface menu to aposition on the display surface.
 4. The method of claim 1, wherein theboundary delineating the first region of the user interface menu iscrossed in the hover input layer.
 5. The method of claim 1, wherein theboundary delineating the first region of the user interface menu iscrossed in the surface input layer.
 6. The method of claim 1, furthercomprising repeating the steps of outputting and determining for eachlevel of hierarchy of the selected menu item.
 7. A non-transitorycomputer-readable medium including instructions that, when executed by aprocessing unit within a spatially-aware projection pen, cause thespatially-aware projection pen to provide a user interface, byperforming the steps of: receiving a position of the spatially-awareprojection pen in three-dimensional space from a position trackingmechanism, wherein the three-dimensional space is partitioned into asurface input layer that includes a display surface, a hover input layerthat is directly above the display surface, and a spatial input layerthat is directly above the hover input layer; receiving a signalindicating that a user interface menu has been activated through aninput mechanism of the spatially-aware projection pen; outputting theuser interface menu as a projected image that is displayed on thedisplay surface by a projector within the spatially-aware projectionpen, wherein the user interface menu comprises a radial menu thatincludes a plurality of regions separated by boundaries, wherein each ofthe regions represents a different menu item included in the radialmenu; locking the user interface menu to a specific position on thedisplay surface; determining that a menu item specified by the userinterface menu has been selected, wherein determining comprises thespatially-aware projection pen determining that a boundary delineating afirst region of the user interface menu has been crossed by a virtualcursor to select a first menu item associated with the first region,wherein the virtual cursor has a position that is controlled bymovements of the spatially-aware projection pen; deactivating thefunction for displaying the user interface menu when the spatially-awareprojection pen is lifted above the surface input layer; and configuringthe spatially-aware projection pen for an operation based on theselected menu item.
 8. The non-transitory computer-readable medium ofclaim 7, further comprising, prior to the step of determining, the stepof locking the user interface menu to the position of thespatially-aware projection pen in the three-dimensional space.
 9. Thenon-transitory computer-readable medium of claim 8, wherein the step ofdetermining comprises locking a virtual cursor to the position of thespatially-aware projection pen in the three-dimensional space andactivating an input mechanism to lock the user interface menu to aposition on the display surface.
 10. The non-transitorycomputer-readable medium of claim 7, wherein the boundary delineatingthe first region of the user interface menu is crossed in the hoverinput layer.
 11. The non-transitory computer-readable medium of claim 7,wherein the boundary delineating the first region of the user interfacemenu is crossed in the surface input layer.
 12. The non-transitorycomputer-readable medium of claim 7, further comprising repeating thesteps of outputting and determining for each level of hierarchy of theselected menu item.
 13. A spatially-aware projection pen configured toprovide a user interface, comprising: an enclosure that is configured tobe grasped by a human hand and housing an input mechanism, a positiontracking mechanism, a projector, and a processor, wherein the processoris configured to: receive an input signal indicating that display of auser interface menu is activated through the input mechanism of thespatially-aware projection pen, receive a position of thespatially-aware projection pen in three-dimensional space from theposition tracking mechanism, wherein the three-dimensional space ispartitioned into a surface input layer that includes a display surface,a hover input layer that is directly above the display surface, and aspatial input layer that is directly above the hover input layer, outputthe user interface menu to a projected image that is displayed on thedisplay surface by the projector within the spatially-aware projectionpen, wherein the user interface menu comprises a radial menu thatincludes a plurality of regions separated by boundaries, wherein each ofthe regions represents a different menu item included in the radialmenu, lock the user interface menu to a specific position on the displaysurface, determine a menu item specified by the user interface menu isselected, wherein determining comprises the spatially-aware projectionpen determining that a boundary delineating a first region of the userinterface menu has been crossed by a virtual cursor to select a firstmenu item associated with the first region, wherein the virtual cursorhas a position that is controlled by movements of the spatially-awareprojection pen, deactivate the function for displaying the userinterface menu when the spatially-aware projection pen is listed abovethe surface input layer, and configure the spatially-aware projectionpen for an operation based on the selected menu item.
 14. The method ofclaim 1, wherein the boundary delineating the first region of the userinterface menu is crossed in the hover spatial input layer.
 15. Thenon-transitory computer-readable medium of claim 7, wherein the boundarydelineating the first region of the user interface menu is crossed inthe hover input layer.
 16. The method of claim 1, wherein outputting theuser interface menu as a projected image on the display surface furthercomprises searching for an element on the display surface.
 17. Thenon-transitory computer-readable medium of claim 7, wherein outputtingthe user interface menu as a projected image on the display surfacefurther comprises searching for an element on the display surface.